home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 626-637 / disk_632 / printfiles / source / prf.h < prev    next >
C/C++ Source or Header  |  1992-05-06  |  13KB  |  393 lines

  1. /* prf.h V1.1 */
  2. /* 9-3-92 */
  3.  
  4. #include <devices/printer.h>
  5. /*
  6. #define DEUTSCH
  7. */
  8.             /* to create an english executable remove the line above */
  9.  
  10. #ifdef DEUTSCH
  11. #include "prf.deutsch.h"
  12. #else
  13. #include "prf.english.h"
  14. #endif
  15. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  16. /* Define's */
  17. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  18.  
  19. #define SYSTEM_VERSION     37L
  20. #define STR_SIZE         256
  21. #define DEFAULT_LINES     66L
  22. #define DEFAULT_LMARGIN    0L
  23. #define DEFAULT_RMARGIN  128L
  24. #define DEFAULT_QUALITY    0L
  25. #define DEFAULT_PITCH      1L
  26. #define DEFAULT_CPI        2L
  27. #define DEFAULT_FLAGS    (FLAG_DRAFT | FLAG_PITCH8 | FLAG_15CPI | FLAG_DISPLAY)
  28. #define FILE_UNKNOWN       0L
  29. #define FILE_TEXT          1L
  30. #define FILE_ILBM          2L
  31. #define FILE_FTXT          3L
  32. #define FILE_PROG          4L
  33. #define FILE_ICON          5L
  34. #define FILE_DIR           6L
  35.  
  36. #define FLAG_DATE                              1
  37. #define FLAG_TIME                              (1 << 1)
  38. #define FLAG_FILE                              (1 << 2)
  39. #define FLAG_PAGE                              (1 << 3)
  40. #define FLAG_LINE                              (1 << 4)
  41. #define FLAG_CRLF                              (1 << 5)
  42. #define FLAG_FF                                (1 << 6)
  43. #define FLAG_PRINT                             (1 << 7)
  44. #define FLAG_DRAFT                             (1 << 8)
  45. #define FLAG_LQ                                (1 << 9)
  46. #define FLAG_IMMEDIATE                         (1 << 10)
  47. #define FLAG_OPENWINDOW                        (1 << 11)
  48. #define FLAG_PITCH6                            (1 << 12)
  49. #define FLAG_PITCH8                            (1 << 13)
  50. #define FLAG_10CPI                             (1 << 14)
  51. #define FLAG_12CPI                             (1 << 15)
  52. #define FLAG_15CPI                             (1 << 16)
  53. #define FLAG_DISPLAY                           (1 << 17)
  54.  
  55. #define TOOLTYPE_WD        "WINDOW"
  56. #define TOOLTYPE_FLAGS     "FLAGS"
  57. #define TOOLTYPE_HEAD      "HEADLINE"
  58. #define TOOLTYPE_FOOT      "FOOTLINE"
  59. #define TOOLTYPE_LINES     "LINES"
  60. #define TOOLTYPE_RMARGIN   "RMARGIN"
  61. #define TOOLTYPE_LMARGIN   "LMARGIN"
  62.  
  63. #define CLI_WD               'w'
  64. #define CLI_DRAFT            'a'
  65. #define CLI_LQ               'q'
  66. #define CLI_PAGE             'p'
  67. #define CLI_DATE             'd'
  68. #define CLI_LINE             'l'
  69. #define CLI_FF               'f'
  70. #define CLI_CRLF             'c'
  71. #define CLI_10CPI            '0'
  72. #define CLI_12CPI            '2'
  73. #define CLI_15CPI            '5'
  74. #define CLI_PITCH6           '6'
  75. #define CLI_PITCH8           '8'
  76. #define CLI_FILE             'n'
  77. #define CLI_TIME             't'
  78.  
  79.  
  80. #define CMD_NEUTRAL        0L
  81. #define CMD_PRINT          1L
  82. #define CMD_CHANGEAPP      2L
  83. #define CMD_QUIT           3L
  84. #define CMD_INSERTHEAD     4L
  85. #define CMD_INSERTTAIL     5L
  86. #define CMD_REMOVE         6L
  87. #define CMD_FILEREQ        7L
  88. #define CMD_DISPLAY        8L
  89. #define CMD_STR_INSERT     9L
  90. #define CMD_OPENPWD       10L
  91. #define CMD_CLOSEPWD      11L
  92. #define CMD_ABOUT         12L
  93. #define CMD_HEAD          13L
  94. #define CMD_FOOT          14L
  95. #define CMD_DATE_ON       15L
  96. #define CMD_TIME_ON       16L
  97. #define CMD_NAME_ON       17L
  98. #define CMD_FF_ON         18L
  99. #define CMD_CRLF_ON       19L
  100. #define CMD_PAGE_ON       20L
  101. #define CMD_LINE_ON       21L
  102. #define CMD_PITCH6        22L
  103. #define CMD_PITCH8        23L
  104. #define CMD_HEADL         24L
  105. #define CMD_FOOTL         25L
  106. #define CMD_RESETALL      26L
  107. #define CMD_CLEARLIST     27L
  108. #define CMD_OPENWD        28L
  109. #define CMD_CLOSEWD       29L
  110. #define CMD_RXQUIT        30L
  111. #define CMD_10CPI         31L
  112. #define CMD_12CPI         32L
  113. #define CMD_15CPI         33L
  114. #define CMD_LINES         34L
  115. #define CMD_DRAFT         35L
  116. #define CMD_LQ            36L
  117. #define CMD_LMARGIN       37L
  118. #define CMD_RMARGIN       38L
  119. #define CMD_DATE_OFF      39L
  120. #define CMD_TIME_OFF      40L
  121. #define CMD_NAME_OFF      41L
  122. #define CMD_FF_OFF        42L
  123. #define CMD_CRLF_OFF      43L
  124. #define CMD_PAGE_OFF      44L
  125. #define CMD_LINE_OFF      45L
  126. #define CMD_SAVEPREFS     46L
  127. #define CMD_STATUS        47L
  128. #define CMD_VERSION       48L
  129.  
  130. /* rexx commands */
  131. #define RXPORTNAME         "PRINTFILES"
  132. #define RX_ERRORLEVEL      5L
  133. #define RX_VERSION_STR     T_PRF T_VERSION
  134.  
  135. #define T_RX_RESET         "reset"
  136. #define T_RX_CLEAR         "clear"
  137. #define T_RX_INSFILE       "insfile"
  138. #define T_RX_REMFILE       "remfile"
  139. #define T_RX_OPENWINDOW    "openwindow"
  140. #define T_RX_CLOSEWINDOW   "closewindow"
  141. #define T_RX_QUIT          "quit"
  142. #define T_RX_PAGE          "page"
  143. #define T_RX_FILE          "filename"
  144. #define T_RX_TIME          "time"
  145. #define T_RX_DATE          "date"
  146. #define T_RX_LINE          "line"
  147. #define T_RX_FF            "ff"
  148. #define T_RX_CRLF          "crlf"
  149. #define T_RX_HEAD          "headline"
  150. #define T_RX_FOOT          "footline"
  151. #define T_RX_LINES         "lines"
  152. #define T_RX_RMARGIN       "rmargin"
  153. #define T_RX_LMARGIN       "lmargin"
  154. #define T_RX_DRAFT         "draft"
  155. #define T_RX_LQ            "lq"
  156. #define T_RX_PITCH6        "6li"
  157. #define T_RX_PITCH8        "8li"
  158. #define T_RX_10CPI         "10cpi"
  159. #define T_RX_12CPI         "12cpi"
  160. #define T_RX_15CPI         "15cpi"
  161. #define T_RX_ON            "on"
  162. #define T_RX_OFF           "off"
  163. #define T_RX_CONTROL       "control"
  164. #define T_RX_PREFS         "prefs"
  165. #define T_RX_PRINT         "print"
  166. #define T_RX_SAVEPREFS     "saveprefs"
  167. #define T_RX_STATUS        "status"
  168. #define T_RX_VERSION       "version"
  169. #define T_RX_ERROR         "Unknown command"
  170. #define T_RX_PMSG          "printing"
  171. #define T_RX_WMSG          "waiting"
  172.  
  173.  
  174. #define RX_CMD_NEUTRAL     0
  175. #define RX_CMD_ON          1
  176.  
  177. #define GD_PwdButton                           0
  178. #define GD_About                               1
  179. #define GD_Headline                            2
  180. #define GD_Footline                            3
  181. #define GD_Date                                4
  182. #define GD_Time                                5
  183. #define GD_Filename                            6
  184. #define GD_Pagenumber                          7
  185. #define GD_Linenumber                          8
  186. #define GD_CRLF                                9
  187. #define GD_FF                                  10
  188. #define GD_Gadget11                            11
  189. #define GD_List                                12
  190. #define GD_Filereq                             13
  191. #define GD_Remove                              14
  192. #define GD_Print                               15
  193. #define GD_quit                                16
  194.  
  195. #define GD_Quality                             17
  196. #define GD_Pitch                               18
  197. #define GD_Linesperpage                        19
  198. #define GD_cpi                                 20
  199. #define GD_Lmargin                             21
  200. #define GD_Rmargin                             22
  201. #define GD_Saveprefs                           23
  202. #define GD_PPrint                              24
  203.  
  204. #define PGD GD_Quality
  205.  
  206. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  207. /* Data structure definition */
  208. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  209.  
  210. union printerIO
  211.       {
  212.        struct IOStdReq     ios;
  213.        struct IODRPReq     iodrp;
  214.        struct IOPrtCmdReq  iopc;
  215.       };
  216.  
  217. struct FileNameNode
  218.        {
  219.         struct Node fnn_Node;
  220.         char        fnn_Name[STR_SIZE];
  221.        };
  222.  
  223.  
  224. struct prf_info
  225.        {
  226.         struct Screen       *PubScr;
  227.         APTR                 VisualInfo;
  228.         struct Window       *Swd;
  229.         struct Window       *Pwd;
  230.         struct IntuiMessage *imsg;
  231.         struct AppMessage   *amsg;
  232.         struct RexxMsg      *rmsg;
  233.         union PrinterIO     *pio;
  234.         struct MsgPort      *rexxPort;
  235.         struct MsgPort      *appPort;
  236.         struct MsgPort      *prtPort;
  237.         struct AppWindow    *aWnd;
  238.         struct AppIcon      *aicon;
  239.         struct AppMenuItem  *amenu;
  240.         struct Gadget       *SGlist;
  241.         struct Gadget       *PGlist;
  242.         struct Gadget       *SGadgets[17];
  243.         struct Gadget       *PGadgets[20];
  244.         struct List          FileList;
  245.         ULONG                Lines;
  246.         ULONG                Lmargin;
  247.         ULONG                Rmargin;
  248.         ULONG                Columns;
  249.         ULONG                signals;
  250.         ULONG                flags;
  251.         ULONG                BarHeight;
  252.         UBYTE                Headline[STR_SIZE];
  253.         UBYTE                Footline[STR_SIZE];
  254.         UBYTE                Statusline[STR_SIZE];
  255.         UBYTE                Insertline[STR_SIZE];
  256.         APTR                 Special1;
  257.         APTR                 Special2;
  258.         APTR                 Special3;
  259.         APTR                 Special4;
  260.        };
  261.  
  262. union wbstart
  263.       {
  264.        char **args;
  265.        struct WBStartup *msg;
  266.       };
  267.  
  268.  
  269.  
  270. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  271. /* prf_main.c  */
  272. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  273.  
  274. /* protos */
  275. void  main(int,union wbstart);
  276. long  OpenLibs(struct prf_info *);
  277. void  CloseLibs(struct prf_info *);
  278. void  Prf_Reset(struct prf_info *);
  279. void  SetPrfSignals(struct prf_info *);
  280. long  HandleMsgs(struct prf_info *);
  281. void  SavePreferences(struct prf_info *,UBYTE *);
  282.  
  283.  
  284. /* vars */
  285. extern long                  _stack;
  286. extern char                 *_procname;
  287. extern long                   priority;
  288. extern long                  _BackGroundIO;
  289. extern BPTR                  _Backstdout;
  290. extern struct GfxBase       *GfxBase;
  291. extern struct IntuitionBase *IntuitionBase;
  292. extern struct Library       *WorkBenchBase;
  293. extern struct Library       *GadToolsBase;
  294. extern struct Library       *AslBase;
  295. extern struct Library       *IconBase;
  296. extern struct RxsLib        *RexxSysBase;
  297. extern struct TextAttr       topaz8;
  298. extern char                 *dayname[];
  299. extern char                 *monthname[];
  300.  
  301.  
  302.  
  303. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  304. /* prf_apphandler.c */
  305. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  306. /* protos */
  307.  
  308. long OpenApp(struct prf_info *);
  309. void CloseApp(struct prf_info *);
  310. long HandleAmsg(struct prf_info *);
  311. void ChangeApp(struct prf_info *);
  312.  
  313. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  314. /* prf_imsghandler.c */
  315. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  316. /* protos */
  317.  
  318. long HandleImsg(struct prf_info *);
  319.  
  320. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  321. /* prf_swd.c */
  322. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  323. /* protos */
  324.  
  325. long OpenSwd(struct prf_info *);
  326. void CloseSwd(struct prf_info *);
  327. long OpenPwd(struct prf_info *);
  328. void ClosePwd(struct prf_info *);
  329. void RefreshSwd(struct prf_info *);
  330. void RefreshPwd(struct prf_info *);
  331.  
  332. /* vars */
  333. extern struct TagItem    SwdTags[];
  334. extern struct TagItem    PwdTags[];
  335.  
  336.  
  337. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  338. /* prf_list.c */
  339. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  340. /* protos */
  341.  
  342. void InsertName(struct prf_info *);
  343. void RemoveName(struct prf_info *);
  344. void AttachList(struct prf_info *);
  345. void DetachList(struct prf_info *);
  346.  
  347.  
  348.  
  349. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  350. /* prf_docommand.c */
  351. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  352. /* protos */
  353.  
  354. long DoCommand(struct prf_info *,long);
  355.  
  356. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  357. /* prf_filereq.c */
  358. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  359. /* protos */
  360.  
  361. void Prf_FileReq(struct prf_info *);
  362. void Prf_SavePrefs(struct prf_info *,UBYTE *);
  363.  
  364. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  365. /* prf.rexx.c */
  366. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  367. /* protos */
  368.  
  369. long HandleRexxMsg(struct prf_info *);
  370. void AttemptOpenRexx(struct prf_info *);
  371. void CloseRexx(struct prf_info *);
  372.  
  373. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  374. /* prf_print.c */
  375. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  376. /* protos */
  377. void PrintQueue(struct prf_info *);
  378.  
  379. /* vars */
  380. extern char                 *dayname[];
  381. extern char                 *monthname[];
  382.  
  383.  
  384. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  385. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  386. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  387. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  388. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  389. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  390. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  391. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  392.  
  393.